--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 92083de57d98c8c0d669a8a11bf6e89bb483bb4f
Parents : c2a183d
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-10T01:04:47-05:00
feat(i18n): update localization
Changes
8 files changed, 264 insertions(+), 56 deletions(-)
Diff
diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json
index 4115e3d5..bfc7bdda 100644
--- a/meshchatx/src/frontend/locales/de.json
+++ b/meshchatx/src/frontend/locales/de.json
@@ -971,7 +971,11 @@
"identity_restored": "Identity imported.",
"identity_restore_failed": "Identitätswiederherstellung fehlgeschlagen",
"no_identity_available": "Keine Identität verfügbar",
- "message_count": "{count} Nachrichten"
+ "message_count": "{count} Nachrichten",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"contacts": {
"title": "Kontakte",
@@ -1896,7 +1900,11 @@
"disabled": "Deaktiviert",
"forwarding_to": "Weiterleitung an: {hash}",
"source_filter_display": "Quellfilter: {hash}",
- "delete_confirm": "Sind Sie sicher, dass Sie diese Regel löschen möchten?"
+ "delete_confirm": "Sind Sie sicher, dass Sie diese Regel löschen möchten?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "In Ihrem lokalen Archiv gespeicherte Nomad-Seiten durchsuchen.",
@@ -2027,7 +2035,11 @@
"failed_drop_paths": "Pfade konnten nicht gelöscht werden",
"purge_confirm": "Alle Ankündigungswarteschlangen leeren? Dies kann nicht rückgängig gemacht werden.",
"queues_purged": "Ankündigungswarteschlangen geleert",
- "failed_purge": "Warteschlangen konnten nicht geleert werden"
+ "failed_purge": "Warteschlangen konnten nicht geleert werden",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS Pfad-Verfolgung",
@@ -2054,7 +2066,11 @@
},
"propagation_nodes": {
"title": "Propagationsknoten",
- "description": "Bevorzugte Mesh-Propagationsknoten wählen, Live-Statistiken sehen und schnelle Pfadprüfungen ausführen."
+ "description": "Bevorzugte Mesh-Propagationsknoten wählen, Live-Statistiken sehen und schnelle Pfadprüfungen ausführen.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Sieb-Filter",
@@ -2669,7 +2685,10 @@
"incoming_announces": "Eingehende Ankündigungen",
"outgoing_announces": "Ausgehende Ankündigungen",
"airtime": "Sendezeit",
- "channel_load": "Kanallast"
+ "channel_load": "Kanallast",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Textübersetzung",
@@ -3018,7 +3037,14 @@
"propagation_manual_desc": "Sie können einen Propagationsknoten später manuell in den Einstellungen konfigurieren oder das Feld leer lassen, wenn Sie keinen verwenden möchten.",
"propagation_enable_auto": "Automatische Konfiguration aktivieren",
"propagation_skip_auto": "Manuelle Konfiguration",
- "auto_propagation_enabled": "Auto-Propagation aktiviert"
+ "auto_propagation_enabled": "Auto-Propagation aktiviert",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Befehle, Routen oder Peers suchen",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Starten Sie die App neu, um Ihre Speicherwahl zu übernehmen.",
"failed": "Speicherort konnte nicht aktualisiert werden."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json
index 99a4434f..71a9a8fd 100644
--- a/meshchatx/src/frontend/locales/es.json
+++ b/meshchatx/src/frontend/locales/es.json
@@ -971,7 +971,11 @@
"identity_restored": "Identidad importada.",
"identity_restore_failed": "La recuperación de identidad falló",
"no_identity_available": "No hay identidad disponible",
- "message_count": "Mensajes{count}"
+ "message_count": "Mensajes{count}",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"about": {
"title": "Acerca de",
@@ -2013,7 +2017,11 @@
"disabled": "Discapacitados",
"forwarding_to": "Hacia:{hash}",
"source_filter_display": "Filtro fuente:{hash}",
- "delete_confirm": "¿Estás seguro de querer borrar esta regla?"
+ "delete_confirm": "¿Estás seguro de querer borrar esta regla?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Buscar páginas Nomad Network almacenadas en su archivo local.",
@@ -2144,7 +2152,11 @@
"failed_drop_paths": "Error al eliminar rutas",
"purge_confirm": "¿Purge anuncian colas? Esto no puede ser deshecho.",
"queues_purged": "Anuncio queues purged",
- "failed_purge": "Error al purgar colas"
+ "failed_purge": "Error al purgar colas",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2171,7 +2183,11 @@
},
"propagation_nodes": {
"title": "Nodos de propagación",
- "description": "Elija nodos de propagación preferidos, vea estadísticas en vivo y compruebe rutas."
+ "description": "Elija nodos de propagación preferidos, vea estadísticas en vivo y compruebe rutas.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Filtros tamiz",
@@ -2786,7 +2802,10 @@
"incoming_announces": "Anuncios entrantes",
"outgoing_announces": "Anuncios salientes",
"airtime": "Horas aéreas",
- "channel_load": "Carga de Canal"
+ "channel_load": "Carga de Canal",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Traducción de texto",
@@ -3187,7 +3206,14 @@
"propagation_manual_desc": "Puedes configurar manualmente un nodo de propagación más adelante en la configuración, o dejarlo vacío si no quieres usar uno.",
"propagation_enable_auto": "Activar la configuración automática",
"propagation_skip_auto": "Configurar manualmente / Saltar",
- "auto_propagation_enabled": "Autopropagación habilitada"
+ "auto_propagation_enabled": "Autopropagación habilitada",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Buscar comandos, rutas o pares",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Reinicia la aplicación para aplicar tu elección de almacenamiento.",
"failed": "No se pudo actualizar la ubicación de almacenamiento."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/fi.json b/meshchatx/src/frontend/locales/fi.json
index 2fa904a4..5601d7b4 100644
--- a/meshchatx/src/frontend/locales/fi.json
+++ b/meshchatx/src/frontend/locales/fi.json
@@ -971,7 +971,11 @@
"identity_restored": "Identiteetti tuotu.",
"identity_restore_failed": "Identiteetin palautus epäonnistui",
"no_identity_available": "Identiteettiä ei saatavilla",
- "message_count": "{count} viestiä"
+ "message_count": "{count} viestiä",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"about": {
"title": "Tietoja",
@@ -2013,7 +2017,11 @@
"disabled": "Poissa käytöstä",
"forwarding_to": "Välitetään kohteeseen: {hash}",
"source_filter_display": "Lähteen suodatin: {hash}",
- "delete_confirm": "Haluatko varmasti poistaa tämän säännön?"
+ "delete_confirm": "Haluatko varmasti poistaa tämän säännön?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Etsi Nomad Network -sivuja paikallisesta arkistosta.",
@@ -2144,7 +2152,11 @@
"failed_drop_paths": "Polkujen pudotus epäonnistui",
"purge_confirm": "Tyhjennetäänkö kaikki ilmoitusjonot? Tätä ei voi peruuttaa.",
"queues_purged": "Ilmoitusjonot tyhjennetty",
- "failed_purge": "Jonojen tyhjennys epäonnistui"
+ "failed_purge": "Jonojen tyhjennys epäonnistui",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2171,7 +2183,11 @@
},
"propagation_nodes": {
"title": "Etenemissolmut",
- "description": "Valitse haluamasi verkon etenemissolmut, tarkkaile reaaliaikaisia tilastoja ja suorita nopeita polkutarkistuksia."
+ "description": "Valitse haluamasi verkon etenemissolmut, tarkkaile reaaliaikaisia tilastoja ja suorita nopeita polkutarkistuksia.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Seulontasuodattimet",
@@ -2967,7 +2983,10 @@
"incoming_announces": "Saapuvat ilmoitukset",
"outgoing_announces": "Lähtevät ilmoitukset",
"airtime": "Ilma-aika",
- "channel_load": "Kanavakuorma"
+ "channel_load": "Kanavakuorma",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Tekstin käännös",
@@ -3385,7 +3404,14 @@
"propagation_manual_desc": "Voit määrittää levityssolmun manuaalisesti myöhemmin asetuksissa tai jättää sen tyhjäksi, jos et halua käyttää sellaista.",
"propagation_enable_auto": "Ota automaattikonfigurointi käyttöön",
"propagation_skip_auto": "Määritä manuaalisesti / Ohita",
- "auto_propagation_enabled": "Automaattinen levitys käytössä"
+ "auto_propagation_enabled": "Automaattinen levitys käytössä",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Hae komentoja, reittejä tai vertaisia",
@@ -3444,4 +3470,4 @@
"action_changelog": "Muutosloki",
"action_changelog_desc": "Viimeaikaiset muutokset"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json
index 234d01a1..9e33b12d 100644
--- a/meshchatx/src/frontend/locales/fr.json
+++ b/meshchatx/src/frontend/locales/fr.json
@@ -971,7 +971,11 @@
"identity_restored": "Identité importée.",
"identity_restore_failed": "La restauration de l'identité a échoué",
"no_identity_available": "Aucune identité disponible",
- "message_count": "Messages{count}"
+ "message_count": "Messages{count}",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"about": {
"title": "À propos",
@@ -2013,7 +2017,11 @@
"disabled": "Désactivé",
"forwarding_to": "Transmission vers : {hash}",
"source_filter_display": "Filtre source : {hash}",
- "delete_confirm": "Voulez-vous vraiment supprimer cette règle ?"
+ "delete_confirm": "Voulez-vous vraiment supprimer cette règle ?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Rechercher les pages du réseau Nomad stockées dans votre archive locale.",
@@ -2144,7 +2152,11 @@
"failed_drop_paths": "Échec des chemins",
"purge_confirm": "Purger toutes les files d'attente ? Cela ne peut être annulé.",
"queues_purged": "Annoncer les files d'attente purgées",
- "failed_purge": "Impossible de purger les files d'attente"
+ "failed_purge": "Impossible de purger les files d'attente",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "Trace de chemin RNS",
@@ -2171,7 +2183,11 @@
},
"propagation_nodes": {
"title": "Nœuds de propagation",
- "description": "Choisissez des nœuds de propagation préférés, consultez des statistiques en direct et lancez des vérifications de chemin."
+ "description": "Choisissez des nœuds de propagation préférés, consultez des statistiques en direct et lancez des vérifications de chemin.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Filtres tamis",
@@ -2786,7 +2802,10 @@
"incoming_announces": "Annonces entrantes",
"outgoing_announces": "Annonces",
"airtime": "Temps d'antenne",
- "channel_load": "Chargement du canal"
+ "channel_load": "Chargement du canal",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Traduction textuelle",
@@ -3187,7 +3206,14 @@
"propagation_manual_desc": "Vous pouvez configurer manuellement un nœud de propagation plus tard dans les paramètres, ou le laisser vide si vous ne voulez pas en utiliser un.",
"propagation_enable_auto": "Activer la configuration automatique",
"propagation_skip_auto": "Configurer manuellement / Passer",
- "auto_propagation_enabled": "Autopropagation activée"
+ "auto_propagation_enabled": "Autopropagation activée",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Commandes de recherche, itinéraires ou pairs",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Redémarrez l'application pour appliquer votre choix de stockage.",
"failed": "Impossible de mettre à jour l'emplacement de stockage."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json
index 46fcad6f..353f4090 100644
--- a/meshchatx/src/frontend/locales/it.json
+++ b/meshchatx/src/frontend/locales/it.json
@@ -971,7 +971,11 @@
"identity_restored": "Identity imported.",
"identity_restore_failed": "Ripristino identità fallito",
"no_identity_available": "Nessuna identità disponibile",
- "message_count": "{count} messaggi"
+ "message_count": "{count} messaggi",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"contacts": {
"title": "Contatti",
@@ -2065,7 +2069,11 @@
"disabled": "Disabilitata",
"forwarding_to": "Inoltro a: {hash}",
"source_filter_display": "Filtro sorgente: {hash}",
- "delete_confirm": "Sei sicuro di voler eliminare questa regola?"
+ "delete_confirm": "Sei sicuro di voler eliminare questa regola?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Cerca pagine Nomad salvate nel tuo archivio locale.",
@@ -2196,7 +2204,11 @@
"failed_drop_paths": "Impossibile eliminare i percorsi",
"purge_confirm": "Svuotare tutte le code di annuncio? L'azione non può essere annullata.",
"queues_purged": "Code di annuncio svuotate",
- "failed_purge": "Impossibile svuotare le code"
+ "failed_purge": "Impossibile svuotare le code",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS Path Trace",
@@ -2223,7 +2235,11 @@
},
"propagation_nodes": {
"title": "Nodi di propagazione",
- "description": "Scegli nodi di propagazione preferiti, controlla statistiche in tempo reale ed esegui verifiche rapide sui percorsi."
+ "description": "Scegli nodi di propagazione preferiti, controlla statistiche in tempo reale ed esegui verifiche rapide sui percorsi.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Filtri a setaccio",
@@ -2838,7 +2854,10 @@
"incoming_announces": "Annunci in Entrata",
"outgoing_announces": "Annunci in Uscita",
"airtime": "Tempo d'antenna",
- "channel_load": "Carico Canale"
+ "channel_load": "Carico Canale",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Traduzione Testo",
@@ -3187,7 +3206,14 @@
"propagation_manual_desc": "Puoi configurare manualmente un nodo di propagazione in seguito nelle impostazioni, oppure lasciare vuoto se non desideri utilizzarne uno.",
"propagation_enable_auto": "Abilita configurazione automatica",
"propagation_skip_auto": "Configurazione manuale",
- "auto_propagation_enabled": "Auto-propagazione abilitata"
+ "auto_propagation_enabled": "Auto-propagazione abilitata",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Cerca comandi, percorsi o peer",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Riavvia l'app per applicare la scelta di archiviazione.",
"failed": "Impossibile aggiornare la posizione di archiviazione."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json
index 171885de..c31b8265 100644
--- a/meshchatx/src/frontend/locales/nl.json
+++ b/meshchatx/src/frontend/locales/nl.json
@@ -971,7 +971,11 @@
"identity_restored": "Identiteit geïmporteerd.",
"identity_restore_failed": "Identiteitsherstel is mislukt",
"no_identity_available": "Geen identiteit beschikbaar",
- "message_count": "{count}-berichten"
+ "message_count": "{count}-berichten",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"about": {
"title": "Info",
@@ -2013,7 +2017,11 @@
"disabled": "Uitgeschakeld",
"forwarding_to": "Doorsturen naar:{hash}",
"source_filter_display": "Bronfilter:{hash}",
- "delete_confirm": "Weet u zeker dat u deze regel wilt verwijderen?"
+ "delete_confirm": "Weet u zeker dat u deze regel wilt verwijderen?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Zoek Nomad Network pagina's opgeslagen in uw lokale archief.",
@@ -2144,7 +2152,11 @@
"failed_drop_paths": "Kan paden niet neerzetten",
"purge_confirm": "Alle rijen wissen? Dit kan niet ongedaan worden gemaakt.",
"queues_purged": "Aankondigen wachtrijen gewist",
- "failed_purge": "Kon wachtrijen niet wissen"
+ "failed_purge": "Kon wachtrijen niet wissen",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS-padspoor",
@@ -2171,7 +2183,11 @@
},
"propagation_nodes": {
"title": "Propagatienodes",
- "description": "Kies voorkeurs-propagatienodes, bekijk live statistieken en voer snelle padcontroles uit."
+ "description": "Kies voorkeurs-propagatienodes, bekijk live statistieken en voer snelle padcontroles uit.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Zeeffilters",
@@ -2786,7 +2802,10 @@
"incoming_announces": "Inkomend bericht",
"outgoing_announces": "Uitgaande mededelingen",
"airtime": "Luchttijd",
- "channel_load": "Kanaal laden"
+ "channel_load": "Kanaal laden",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Tekstvertaling",
@@ -3187,7 +3206,14 @@
"propagation_manual_desc": "U kunt een propagatieknooppunt later handmatig instellen in de instellingen, of het leeg laten als u er geen wilt gebruiken.",
"propagation_enable_auto": "Auto-configuratie inschakelen",
"propagation_skip_auto": "Handmatig instellen / overslaan",
- "auto_propagation_enabled": "Auto-propagatie ingeschakeld"
+ "auto_propagation_enabled": "Auto-propagatie ingeschakeld",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Zoekopdrachten, routes of collega's",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Herstart de app om uw opslagkeuze toe te passen.",
"failed": "Kan opslaglocatie niet bijwerken."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json
index 8cf21669..e9639595 100644
--- a/meshchatx/src/frontend/locales/ru.json
+++ b/meshchatx/src/frontend/locales/ru.json
@@ -971,7 +971,11 @@
"identity_restored": "Identity imported.",
"identity_restore_failed": "Не удалось восстановить идентификатор",
"no_identity_available": "Нет доступного идентификатора",
- "message_count": "{count} сообщений"
+ "message_count": "{count} сообщений",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"contacts": {
"title": "Контакты",
@@ -1896,7 +1900,11 @@
"disabled": "Выключено",
"forwarding_to": "Пересылка на: {hash}",
"source_filter_display": "Фильтр источника: {hash}",
- "delete_confirm": "Вы уверены, что хотите удалить это правило?"
+ "delete_confirm": "Вы уверены, что хотите удалить это правило?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "Поиск страниц Nomad, сохранённых в локальном архиве.",
@@ -2027,7 +2035,11 @@
"failed_drop_paths": "Не удалось удалить пути",
"purge_confirm": "Очистить все очереди объявлений? Это действие необратимо.",
"queues_purged": "Очереди объявлений очищены",
- "failed_purge": "Не удалось очистить очереди"
+ "failed_purge": "Не удалось очистить очереди",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS Трассировка пути",
@@ -2054,7 +2066,11 @@
},
"propagation_nodes": {
"title": "Узлы распространения",
- "description": "Выбор предпочтительных узлов распространения, просмотр статистики в реальном времени и быстрая проверка маршрутов."
+ "description": "Выбор предпочтительных узлов распространения, просмотр статистики в реальном времени и быстрая проверка маршрутов.",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "Сито-фильтры",
@@ -2669,7 +2685,10 @@
"incoming_announces": "Входящие анонсы",
"outgoing_announces": "Исходящие анонсы",
"airtime": "Эфирное время",
- "channel_load": "Загрузка канала"
+ "channel_load": "Загрузка канала",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "Перевод текста",
@@ -3018,7 +3037,14 @@
"propagation_manual_desc": "Вы можете вручную настроить узел ретрансляции позже в настройках или оставить поле пустым, если не хотите его использовать.",
"propagation_enable_auto": "Включить автонастройку",
"propagation_skip_auto": "Ручная настройка",
- "auto_propagation_enabled": "Авторетрансляция включена"
+ "auto_propagation_enabled": "Авторетрансляция включена",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "Команды, маршруты или узлы",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "Перезапустите приложение, чтобы применить выбор хранилища.",
"failed": "Не удалось обновить расположение хранилища."
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json
index e683a51f..30c1dd4e 100644
--- a/meshchatx/src/frontend/locales/zh.json
+++ b/meshchatx/src/frontend/locales/zh.json
@@ -971,7 +971,11 @@
"identity_restored": "身份已恢复。",
"identity_restore_failed": "身份恢复失败",
"no_identity_available": "无可用身份",
- "message_count": "{count} 条消息"
+ "message_count": "{count} 条消息",
+ "import_key_only_hint": "This restores the identity key only. Message history and settings require a database backup zip from About.",
+ "switch_after_restore_confirm": "Switch to restored identity \"{name}\" now?",
+ "identity_restore_empty_file": "Identity file is empty.",
+ "identity_restore_file_too_large": "Identity file is too large."
},
"about": {
"title": "关于",
@@ -2013,7 +2017,11 @@
"disabled": "已禁用",
"forwarding_to": "转发至:{hash}",
"source_filter_display": "源过滤器:{hash}",
- "delete_confirm": "您确定要删除此规则吗 ?"
+ "delete_confirm": "您确定要删除此规则吗 ?",
+ "invalid_hash": "Forward-to hash must be a 32-character hex value",
+ "send_failed": "Could not send forwarding update (websocket disconnected)",
+ "rule_added": "Forwarding rule added",
+ "rule_deleted": "Forwarding rule deleted"
},
"archives": {
"description": "搜索游牧网络页面存储在您的本地档案中 。",
@@ -2144,7 +2152,11 @@
"failed_drop_paths": "丢弃路径失败",
"purge_confirm": "清除全部宣布队列吗 ? 这一点是无法消除的。",
"queues_purged": "宣布队列已清除",
- "failed_purge": "清除队列失败"
+ "failed_purge": "清除队列失败",
+ "path_requested": "Path requested for {hash}...",
+ "drop_confirm": "Are you sure you want to drop the path to {hash}?",
+ "drop_via_confirm": "Drop ALL paths via {hash}?",
+ "invalid_hops": "Hops filter must be a number"
},
"rnpath_trace": {
"title": "RNS 路径",
@@ -2171,7 +2183,11 @@
},
"propagation_nodes": {
"title": "传播节点",
- "description": "选择偏好的传播节点,查看实时统计数据并快速检查路径。"
+ "description": "选择偏好的传播节点,查看实时统计数据并快速检查路径。",
+ "load_failed": "Failed to load propagation nodes",
+ "local_restarted": "Local propagation node restarted",
+ "local_stopped": "Local propagation node stopped",
+ "local_started": "Local propagation node started"
},
"sieve_filters": {
"title": "筛选规则",
@@ -2786,7 +2802,10 @@
"incoming_announces": "入站广播",
"outgoing_announces": "出站广播",
"airtime": "占用时长",
- "channel_load": "信道负载"
+ "channel_load": "信道负载",
+ "blackhole_label": "Blackhole: {state}",
+ "blackhole_publishing": "Publishing",
+ "blackhole_inactive": "Inactive"
},
"translator": {
"text_translation": "文本翻译",
@@ -3187,7 +3206,14 @@
"propagation_manual_desc": "您可以稍后在设置中手动配置传播节点,如果不需要也可以留空。",
"propagation_enable_auto": "启用自动配置",
"propagation_skip_auto": "手动配置/跳过",
- "auto_propagation_enabled": "已启用自动传播"
+ "auto_propagation_enabled": "已启用自动传播",
+ "identity_import_empty_file": "Identity file is empty.",
+ "identity_import_file_too_large": "Identity file is too large.",
+ "identity_import_key_only_hint": "This imports your identity key only. To restore messages and settings, use About → Restore from File with a database backup zip.",
+ "identity_file_overrides_base32": "A selected file will be used instead of the pasted base32 key.",
+ "identity_import_pending_activate": "You imported an identity but have not activated it yet. Activate it now?",
+ "identity_import_pending_kept": "Imported identity was saved but not activated. Switch to it later from Identities.",
+ "identity_default_delete_failed": "Imported identity is active, but the default identity could not be removed."
},
"command_palette": {
"search_placeholder": "搜索命令、路径或端点",
@@ -3444,4 +3470,4 @@
"restart_to_apply": "重启应用以应用存储选择。",
"failed": "无法更新存储位置。"
}
-}
+}
\ No newline at end of file
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────